#!/usr/bin/env python
# coding: utf-8

# 将miRNA clus 文件转化为gff3文件

import sys
import argparse


parser = argparse.ArgumentParser(
    description='''将miRNA 的clus转化为 gff文件
    用法:
    miRNA2gff3.py -i NIG_miRNA_ONT.clus -o NIG_miRNA_ONT.gff3
    由大天才于2021年7月28日创建于浙江农业大学''')

parser.add_argument('-i',
                help='必须给定，输入的clus文件')


parser.add_argument('-o',
                help='必须给定，输出文件的路径')

args = parser.parse_args()

if not args.i or not args.o:
    parser.print_help()
    sys.exit()




infile = args.i

outfile  = args.o


# 先检查

miRNA = {}
with open(infile) as fila:
    t = 0
    for i in fila:
        t += 1
        k = i.strip().replace(',','\t').split('\t')
        name = k[1]
        family = k[2]
        d = k[7]
        if d == '+':
            s = int(k[8])+1
            e = int(k[9])
        else:
            s = int(k[8])+1
            e = int(k[9])
        scaf = k[6]
        miRNA[name] = [scaf,'.','miRNA_primary_transcript',str(s),str(e),'.',d,'.','ID='+name+';Target='+family]


fita = open(outfile,'w')
fita.write('##gff-version 3.2.1\n')

for i in miRNA:
    fita.write('\t'.join(miRNA[i])+'\n')
